package com.zhouyy.common.enums;

import com.zhouyy.common.exception.ApiException;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.assertj.core.util.Lists;

import java.util.Arrays;
import java.util.List;

/**
 * <p> 水果类型枚举 </p>
 *
 * @author zhouyy
 * @description
 * @date 2024/03/25 19:12
 */
@Getter
@AllArgsConstructor
public enum FruitTypeEnum {
    /**
     * 苹果
     */
    APPLE(1, "苹果"),
    /**
     * 草莓
     */
    STRAWBERRY(2, "草莓"),
    /**
     * 芒果
     */
    MANGO(3, "芒果");

    /**
     * 类型
     */
    private final int type;
    /**
     * 描述
     */
    private final String desc;

    private static final List<FruitTypeEnum> LIST = Lists.newArrayList();

    static {
        LIST.addAll(Arrays.asList(FruitTypeEnum.values()));
    }


    /**
     * 根据类型获取枚举
     *
     * @param type 类型
     * @return 枚举
     */
    public static FruitTypeEnum getEnum(int type) {
        for (FruitTypeEnum itemEnum : LIST) {
            if (itemEnum.getType() == type) {
                return itemEnum;
            }
        }
        throw new ApiException("未找到指定数据水果类型枚举信息!");
    }

}
